<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ajax第一案例：Hello World</title>
<script type="text/javascript" src="JQuery/jquery-1.11.1.js"></script>
<script type="text/javascript">
   /* window.onload = function() {
	   alert("2");
	   alert($("#btn"));
   } */
   $(function() {   //文档加载完毕后执行
    	$("#btn").click(function() {   //给按钮添加点击事件
    		/*
    		 Ajax的四步操作，得到服务器的响应，把响应结果显示到h1元素中
    		*/
    		//1、得到异步对象
    		var xmlHttp = createXMLHttpRequest();
    	    /*
    	      2、打开与服务器的连接
    	         -- open()方法的三个参数分别为： 
    	            ** 指定请求方式
    	            ** 指定请求的URL
    	            ** 指定是否为异步请求
    	    */
    		xmlHttp.open("POST", "/ajax_project/AjaxServlet", true);
    	    //3、发送请求
    	    /*POST 方式必须添写请求体
    	      POST 方式也需要设置Content-Type请求头：
    	    */
    	    xmlHttp.setRequestHeader("ContentType", "application/x-www-form-urlencoded")
    		xmlHttp.send("username=张&password=123");   //GET 请求没有请求体，但是也要添加null,否则FireFox可能不会发送  
    		//4、给异步对象的onreadystatechange事件注册监听器
    		xmlHttp.onreadystatechange = function() {   //当xmlHttp的状态发送变化时执行
    		    //双重判断：xmlHttp的状态为4(服务器响应结束) 及 服务器的响应状态码为200(服务器响应成功)
    			if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
    				//获取服务器的响应元素
    				var text = xmlHttp.responseText;
    				$("#h1").html(text);
    			}
    		}
    	});
   });
    //创建XMLHttpRequest异步对象
    function createXMLHttpRequest() {
    	try {
			return new XMLHttpRequest();     //支持大多数浏览器
		} catch (e) {
            try {
				return new ActiveXObject("Msxml2.XMLHTTP");   //支持IE6.0
			} catch (e) {
				try {
					return new ActiveXObject("Microsoft.XMLHTTP");  //支持IE5.5及以下版本
				} catch (e) {
					throw e;
				}
			}
		}
    }
</script>
</head>
<body>
 <button id="btn">点击按钮</button>
 <h1 id="h1"></h1>
</body>
</html>